package com.xudu.tourbackend.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xudu.tourbackend.entity.ScenicSpot;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xudu.tourbackend.entity.request.AddScenicSpotRequest;
import com.xudu.tourbackend.entity.request.SearchScenicSpot;
import com.xudu.tourbackend.entity.request.UpdateScenicSpotRequest;
import com.xudu.tourbackend.entity.vo.ScenicSpotVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xudu
 * @since 2024-06-17
 */

public interface IScenicSpotService extends IService<ScenicSpot> {


    /**
     * 添加景点
     * @param addScenicSpotRequest 添加景点请求体
     * @param request 网络请求
     * @return 添加的景点id
     */
    int addScenicSpot(AddScenicSpotRequest addScenicSpotRequest, HttpServletRequest request);

    /**
     * 删除景点
     * @param ids 景点id列表
     * @param request 网络请求
     * @return 删除结果
     */
    int deleteScenicSpot(List<Integer> ids, HttpServletRequest request);

    /**
     * 更新景点
     *
     * @param updateScenicSpotRequest 更新景点请求体
     * @param request                 网络请求
     * @return 景点信息
     */
    Boolean updateScenicSpot(UpdateScenicSpotRequest updateScenicSpotRequest, HttpServletRequest request);


    /**
     * 搜索景点 组合条件查询
     *
     * @param searchScenicSpot 查询景点请求体
     * @return 景点信息列表
     */
    IPage<ScenicSpotVo> searchScenicSpot(SearchScenicSpot searchScenicSpot);

    /**
     * 搜索景点
     * @param scenicSpotName 景点名称
     * @return 景点信息
     */
    List<ScenicSpotVo> searchScenicSpot(String scenicSpotName);
}
